home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Games 1996 July
/
Amiga Games 1996 #7.iso
/
userbox
/
publicdomain
/
memory-device
/
source
/
copymem.asm
< prev
next >
Wrap
Assembly Source File
|
1996-03-29
|
2KB
|
68 lines
;*
;* $VER: copy.asm 1.2 (29 Mar 1996)(23 Mar 1996)
;*
;* memory.device - direct memory access
;*
;* (C) Copyright 1996 Marius Gröger
;* All Rights Reserved
;*
;* Inspired by z2ram device in Linux/68k/Amiga
;*
;* $HISTORY:
;*
;* 29 Mar 1996 : 001.002 : improved even more
;* 23 Mar 1996 : 001.001 : improved
;* 10 Mar 1996 : 001.000 : created
;*
section "text",code
;----------------------------------------------------------------------------
xdef _CopyMemWarp
;----------------------------------------------------------------------------
;
; NAME
; CopyMemWarp() - copy memory block assuming length = n * 128 Bytes
;
; SYNOPSIS
; void CopyMemWarp(VOID *src, VOID *dst, ULONG len)
; A0 A1 D0
;
; FUNCTION
; This is a very fast CopyMem() style function. It is assumed that length
; of the data to be copied is a multiple of 64 Bytes. The maximum
; length allowed is (2^22)-1 bytes.
;
; SEE ALSO
; exec.library/CopyMem(), exec.library/CopyMemQuick()
_CopyMemWarp:
asr.l #6,d0
bra start
copy:
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
start:
dbra d0,copy
rts
end